package com.zxy.leetcode._00000_00099._00010_00019;

/**
 * https://leetcode-cn.com/problems/container-with-most-water/
 *
 * 盛最多水的容器
 * 给你 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点 (i, ai) 。
 * 在坐标内画 n 条垂直线，垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。
 * 找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。
 */
public class Test00011 {

    public static void main(String[] args) {
        Test00011 test = new Test00011();

        int[] height1 = {1,8,6,2,5,4,8,3,7};
        System.out.println(test.maxArea(height1));  // 49

        int[] height2 = {1,1};
        System.out.println(test.maxArea(height2));  // 1

        int[] height3 = {4,3,2,1,4};
        System.out.println(test.maxArea(height3));  // 16

        int[] height4 = {1,2,1};
        System.out.println(test.maxArea(height4));  // 2
    }

    public int maxArea(int[] height) {
        int max = 0;
        for (int i=0; i<height.length-1; i++) {
            for (int j=i+1; j<height.length; j++) {
                int h = Math.min(height[i], height[j]);
                int area = (j-i) * h;
                max = Math.max(max, area);
            }
        }

        return max;
    }
}
